﻿function getMarketCategoriesGrid(){
	delRec = function(){
		var c = grid.selModel.getCount();
		if(c < 1){
			Ext.MessageBox.alert('Ошибка','Не выделено ни одной записи.');
			return;
		}
		Ext.MessageBox.confirm('Подтверждение','Вы действительно хотите удалить выделенное?',
			function(btn){
				if (btn!='yes') return;
				catStore.remove(grid.selModel.getSelected());
		});
	}
	addNewRec = function(){
		var rt = catStore.recordType;
		var n = new rt({Name: 'Новая категория'});
		grid.stopEditing();
		catStore.insert(0, n);
		grid.startEditing(0, 0);
	}
	var catStore = new Ext.data.Store({
		proxy: new Ext.data.HttpProxy({url: '/yamarket/categories'}),
		restful: true,
		reader: new Ext.data.JsonReader({root: 'data',totalProperty: 'total',idProperty: 'Id'},[ 
			{name: 'Id', type: 'int', mapping: 'Id'}
			,{name: 'ParentId', type: 'int', mapping: 'ParentId'}
			,{name: 'Name', type: 'string', mapping: 'Name'}
		])
		,writer:new Ext.data.JsonWriter({encode: false}),
	});
	catStore.load();
		
	var grid = new Ext.grid.EditorGridPanel({
		closable: true,
		store: catStore,
		clicksToEdit:2,
		height: 350,
		width: 600,
		title: 'Категории маркета',
		selModel: new Ext.grid.RowSelectionModel({singleSelect:false})
		,bbar: new Ext.PagingToolbar({
			pageSize: 25,
			store: catStore,
			displayInfo: true,
			displayMsg: 'записи {0} - {1} из {2}',
			emptyMsg: "нет записей",
		})
		,tbar: [{text: 'Добавить',tooltip: 'Добавить новую запись', handler: addNewRec}
			,{text: 'Удалить запись',tooltip: 'Удаление выделенной записи', scope:this, handler: delRec}
			,new Nippy.SearchField({ store: catStore, params: {start: 0, limit: 25}, width: 120})
			/*,{text: 'Обновить цены', tooltip: 'Обновить цены с учетом курса', scope: this, handler: this.updatePrice}
			*/
		]
		,columns: [{
				header   : 'Id', 
				width    : 50, 
				sortable : true, 
				dataIndex: 'Id'
			},
			{
				header   : 'ParentId', 
				width    : 50, 
				sortable : true, 
				dataIndex: 'ParentId'
				,editor: new Ext.form.TextField({allowBlank: false,maxLength: 255})
			},
			{
				header   : 'Название категории', 
				width    : 160, 
				sortable : true, 
				dataIndex: 'Name'
				,editor: new Ext.form.TextField({allowBlank: false,maxLength: 255})
			}
		]//column
	});
	return grid;
}//function